/******************************************************************************
 *                                                                            *
 *               (c) 2008-2009 HutLab. All rights reserved.                   *
 *                        Eduardo Henrique Leite                              *
 *                                                                            *
 ******************************************************************************

 History:
 Created 01/01/2009

 */

package hutlab.sudoku.engine.base;

/**
 * Colour class.
 */
public class ColourRGB {

    // ----- FIELDS -----

    private int mRed;
    private int mGreen;
    private int mBlue;
    
    // ----- GETTERS -----
    
    /**
     * Gets the value for Red from the colour.
     */
    public int getRed(){
        return mRed;
    }
    
    /**
     * Gets the value for Green from the colour.
     */
    public int getGreen(){
        return mGreen;
    }
    
    /**
     * Gets the value for Blue from the colour.
     */
    public int getBlue() {
        return mBlue;
    }
    
    // ----- SETTERS -----
    
    /**
     * Sets the value for Red.
     */
    public void setRed(int value){
        mRed = value;
    }
    
    /**
     * Sets the value for Green.
     */
    public void setGreen(int value){
        mGreen = value;
    }
    
    /**
     * Sets the value for Blue.
     */
    public void setBlue(int value){
        mBlue = value;
    }
    
    // ----- CONSTRUCTOR -----

    /**
     * Creates a new Colour object.
     */
    public ColourRGB(){
    }

    /**
     * Creates a new Colour object setting the values for Red, Green and Blue.
     */
    public ColourRGB(int red, int green, int blue){
        this.mRed = red;
        this.mGreen = green;
        this.mBlue = blue;
    }

    // ----- STATIC -----

    /**
     * Returns Black colour.
     */
    public static ColourRGB Black(){
        return new ColourRGB(0,0,0);
    }

    /**
     * Returns White colour.
     */
    public static ColourRGB White(){
        return new ColourRGB(255,255,255);
    }

    /**
     * Returns Red colour.
     */
    public static ColourRGB Red(){
        return new ColourRGB(255,0,0);
    }

    /**
     * Returns Lime colour.
     */
    public static ColourRGB Lime(){
        return new ColourRGB(0,255,0);
    }

    /**
     * Returns Blue colour.
     */
    public static ColourRGB Blue(){
        return new ColourRGB(0,0,255);
    }

    /**
     * Returns Aqua colour.
     */
    public static ColourRGB Aqua(){
        return new ColourRGB(0,255,255);
    }

    /**
     * Returns Fuchsia colour.
     */
    public static ColourRGB Fuchsia(){
        return new ColourRGB(255,0,255);
    }

    /**
     * Returns Grey colour.
     */
    public static ColourRGB Grey(){
        return new ColourRGB(128,128,128);
    }

    /**
     * Returns Green colour.
     */
    public static ColourRGB Green(){
        return new ColourRGB(0,128,0);
    }

    /**
     * Returns Maroon colour.
     */
    public static ColourRGB Maroon(){
        return new ColourRGB(128,0,0);
    }

    /**
     * Returns Navy colour.
     */
    public static ColourRGB Navy(){
        return new ColourRGB(0,0,128);
    }

    /**
     * Returns Olive colour.
     */
    public static ColourRGB Olive(){
        return new ColourRGB(128,128,0);
    }

    /**
     * Returns Purple colour.
     */
    public static ColourRGB Purple(){
        return new ColourRGB(128,0,128);
    }

    /**
     * Returns Silver colour.
     */
    public static ColourRGB Silver(){
        return new ColourRGB(192,192,192);
    }

    /**
     * Returns Teal colour.
     */
    public static ColourRGB Teal(){
        return new ColourRGB(0,128,128);
    }

    /**
     * Returns Yellow colour.
     */
    public static ColourRGB Yellow(){
        return new ColourRGB(255,255,0);
    }

}
